import { medicalRecordPage } from "@/api/MedicalExamination";
import { BasicColumn, BasicTable, FormSchema, useRender, useTable } from "@/components/Table";
import Toolbar from "@/components/ViewComponents/Toolbar";
import { useTranslation } from "react-i18next";

export default function index() {
	const { t } = useTranslation();

	const searchFormSchema_I: FormSchema[] = [
		{
			label: t("patientBasic.patient_id"),
			field: "patientId",
			component: "Input"
		},
		{
			label: t("patientBasic.full_name"),
			field: "full_name",
			component: "Input"
		},
		{
			label: t("patientBasic.birthyear"),
			field: "birthday",
			component: "DatePicker"
		},
		{
			label: t("patientBasic.pat_address"),
			field: "pat_address",
			component: "Input"
		},
		{
			label: t("kevin_ui.admission_date"),
			field: "admissionDate",
			component: "DatePicker"
		},
		{
			label: t("kevin_ui.discharge"),
			field: "dischargeDate",
			component: "DatePicker"
		},
		{
			label: t("kevin_ui.department"),
			field: "Department",
			component: "Input"
		},
		{
			label: "Card Number",
			field: "patCardNo",
			component: "Input"
		},
		{
			label: "Chẩn đoán",
			field: "Chẩn đoán",
			component: "Input"
		},
		{
			label: "Mã ICD",
			field: "Mã ICD",
			component: "Input"
		},
		{
			label: "Trưởng Khoa",
			field: "Trưởng Khoa",
			component: "Input"
		},
		{
			label: "Lãnh đạo ký",
			field: "Lãnh đạo ký",
			component: "Input"
		},
		{
			label: "Lần thứ",
			field: "Lần thứ",
			component: "Input"
		},
		{
			label: "Phương pháp điều trị",
			field: "Phương pháp điều trị",
			component: "InputTextArea"
		},
		{
			label: "Tình trạng lúc ra",
			field: "Tình trạng lúc ra",
			component: "InputTextArea"
		},
		{
			label: "Lời dặn của thầy thuốc",
			field: "Lời dặn của thầy thuốc",
			component: "InputTextArea"
		},
		{
			label: "Lời ADR",
			field: "Lời ADR",
			component: "InputTextArea"
		},
		{
			label: "Số BHXH",
			field: "Số BHXH",
			component: "Input"
		},
		{
			label: "Nghỉ BHXH",
			field: "Nghỉ BHXH",
			component: "Input"
		},
		{
			label: "Mã cha",
			field: "Mã cha",
			component: "Input"
		},
		{
			label: "Mã mẹ",
			field: "Mã mẹ",
			component: "Input"
		},
		{
			label: "Bác sỹ điều trị",
			field: "Bác sỹ điều trị",
			component: "Input"
		},
		{
			label: "Ngày PT",
			field: "Ngày PT",
			component: "DatePicker"
		},
		{
			label: "PTV",
			field: "PTV",
			component: "Input"
		},
		{
			label: "Tên phẫu thuật",
			field: "Tên phẫu thuật",
			component: "Input"
		},
		{
			label: "Phương pháp phẫu thuật",
			field: "Phương pháp phẫu thuật",
			component: "Input"
		},
		{
			label: "D.cụ ghép đặt trong cơ thể",
			field: "D.cụ ghép đặt trong cơ thể",
			component: "Input"
		},
		{
			label: "Kết quả giải phẫu bệnh lý",
			field: "Kết quả giải phẫu bệnh lý",
			component: "Input"
		},
		{
			label: "Trình ký",
			field: "Trình ký",
			component: "Checkbox"
		},
		{
			label: "Ngày tái khám",
			field: "Ngày tái khám",
			component: "DatePicker"
		},
		{
			label: "Tái khám",
			field: "Tái khám",
			component: "Checkbox"
		},
		{
			label: "BS khám",
			field: "BS khám",
			component: "Input"
		}
	];

	const columns: BasicColumn[] = [
		{
			title: t("patientBasic.patient_id"),
			dataIndex: "patientId",
			render: (_, record) => (record.patients ? record.patients.patientId : "")
		},
		{
			title: t("patientBasic.full_name"),
			dataIndex: "fullName",
			render: (_, record) => (record.patients ? record.patients.fullName : "")
		},
		{
			title: t("patientBasic.birthyear"),
			dataIndex: "birthday",
			render: (_, record) => (record.patients ? record.patients.birthday : "")
		},
		{
			title: t("kevin_ui.admission_date"),
			dataIndex: "admissionDate",
			render: (_, record) => (record.adDiagnosis ? useRender.renderDate(record.adDiagnosis.createdTime) : "")
		},
		{
			title: t("kevin_ui.discharge"),
			dataIndex: "dischargeDate",
			render: (_, record) => (record.disDiagnosis ? useRender.renderDate(record.disDiagnosis.createdTime) : "")
		},
		{
			title: t("felix_ui.number_of_prints"),
			dataIndex: "prints"
		}
	];
	const [registerTable] = useTable({
		// dataSource: [
		// 	{
		// 		patientId: "123131",
		// 		fullName: "Jack",
		// 		birthday: "2025-01-23",
		// 		admissionDate: "2025-01-23",
		// 		dischargeDate: "2025-01-23",
		// 		prints: 1
		// 	}
		// ],
		api: medicalRecordPage,
		columns,
		useSearchForm: true,
		formConfig: {
			labelWidth: 120,
			schemas: searchFormSchema_I,
			showActionButtonGroup: true,
			baseColProps: { span: 6 },
			actionColOptions: { span: 24 }
		},
		rowSelection: { type: "checkbox" }
	});

	return (
		<div className="page511 page">
			<div className="page-content">
				<BasicTable register={registerTable}></BasicTable>
			</div>
			<Toolbar btnList={[{ key: "print" }]} />
		</div>
	);
}
